import { IPSSysBDScheme } from '../../ba/ipssys-bdscheme';
import { IPSSysBDTable } from '../../ba/ipssys-bdtable';
import { IPSDataEntityObject } from '../ipsdata-entity-object';

/**
 *
 * 子接口类型识别属性[]
 * @export
 * @interface IPSDEBDTable
 */
export interface IPSDEBDTable extends IPSDataEntityObject {
  /**
   * 大数据表实体类型
   * @description 值模式 [大数据表实体类型] {1：默认实体、 2：关系主实体、 3：关系从实体、 0：附属实体 }
   * @type {( number | 1 | 2 | 3 | 0)}
   */
  bDTableDEType: number | 1 | 2 | 3 | 0;

  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 大数据体系
   *
   * @type {IPSSysBDScheme}
   */
  getPSSysBDScheme(): IPSSysBDScheme | null;

  /**
   * 大数据体系
   *
   * @type {IPSSysBDScheme}
   */
  get psSysBDScheme(): IPSSysBDScheme | null;

  /**
   * 大数据体系（必须存在）
   *
   * @type {IPSSysBDScheme}
   */
  getPSSysBDSchemeMust(): IPSSysBDScheme;

  /**
   * 大数据表
   *
   * @type {IPSSysBDTable}
   */
  getPSSysBDTable(): IPSSysBDTable | null;

  /**
   * 大数据表
   *
   * @type {IPSSysBDTable}
   */
  get psSysBDTable(): IPSSysBDTable | null;

  /**
   * 大数据表（必须存在）
   *
   * @type {IPSSysBDTable}
   */
  getPSSysBDTableMust(): IPSSysBDTable;
}
